/**
 * Created by IntelliJ IDEA.
 * User: Bezdelnick
 * Date: 10/3/12
 * Time: 10:45 PM
 * To change this template use File | Settings | File Templates.
 */
package editor {
import editor.ui.ComponentsList;
import editor.ui.MaplePanel;
import editor.ui.PlayingPanel;
import editor.ui.PropertiesComponentList;
import editor.ui.ScreenXYZ;
import editor.ui.SceneComponentsList;
import editor.ui.panel.SetUpComponentPropertiesPanel;

import vplib.component.IPhysicsComponent;
import vplib.lab.Lab;
import vplib.model.PhysicsProperty;

public class BeansFactory {

    // --------------------  -------------------- //

    private static var componentList:ComponentsList = null;
    private static var sceneComponentsList:SceneComponentsList = null;
    private static var propertiesComponentList:PropertiesComponentList = null;
    private static var playingPanel:PlayingPanel = null;
    private static var maplePanel:MaplePanel = null;
    private static var setUpComponentsPanel:SetUpComponentPropertiesPanel = null;
    private static var screenXYZ:ScreenXYZ = null;

    public static function getComponentList():ComponentsList {
        return componentList;
    }

    public static function setComponentList(value:ComponentsList):void {
        componentList = value;
    }

    public static function getSceneComponentsList():SceneComponentsList {
        return sceneComponentsList;
    }

    public static function setSceneComponentsList(value:SceneComponentsList):void {
        sceneComponentsList = value;
    }

    public static function getPropertiesComponentList():PropertiesComponentList {
        return propertiesComponentList;
    }

    public static function setPropertiesComponentList(value:PropertiesComponentList):void {
        propertiesComponentList = value;
    }

    public static function getPlayingPanel():PlayingPanel {
        return playingPanel;
    }

    public static function setPlayingPanel(value:PlayingPanel):void {
        playingPanel = value;
    }

    public static function getMaplePanel():MaplePanel {
        return maplePanel;
    }

    public static function setMaplePanel(value:MaplePanel):void {
        maplePanel = value;
    }

    public static function getSetUpComponentsPanel():SetUpComponentPropertiesPanel {
        return setUpComponentsPanel;
    }

    public static function setSetUpComponentsPanel(value:SetUpComponentPropertiesPanel):void {
        setUpComponentsPanel = value;
    }

    public static function getScreenXYZ():ScreenXYZ {
        return screenXYZ;
    }

    public static function setScreenXYZ(value:ScreenXYZ):void {
        screenXYZ = value;
    }

    // --------------------  -------------------- //

    private static var labWork:Lab = null;
    private static var selectedComponent:IPhysicsComponent = null;
    private static var selectedProperty:PhysicsProperty = null;

    public static function getLabWork():Lab {
        if (labWork == null)
            labWork = new Lab();
        return labWork;
    }

    public static function setLabWork(lab:Lab):void {
        labWork = lab;
    }

    public static function getSelectedComponent():IPhysicsComponent {
        return selectedComponent;
    }

    public static function setSelectedComponent(value:IPhysicsComponent):void {
        selectedComponent = value;
    }

    public static function getSelectedProperty():PhysicsProperty {
        return selectedProperty;
    }

    public static function setSelectedProperty(value:PhysicsProperty):void {
        selectedProperty = value;
    }
}
}
